package com.jjsc.product.api.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 商品spu表
 * @TableName product
 */
@TableName(value ="product")
@Data
@Schema(description = "商品表")
public class Product {
    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 商品名称
     */
    @Schema(description = "商品名称")
    private String name;

    /**
     * 一级分类
     */
    @Schema(description = "一级分类ID")
    private Long category1Id;

    /**
     * 二级分类
     */
    @Schema(description = "二级分类ID")
    private Long category2Id;

    /**
     * 封面图
     */
    @Schema(description = "封面图")
    private String coverImg;

    /**
     * 商品规格json
     */
    @Schema(description = "商品规格json")
    private String specValue;

    /**
     * 状态（0上架 1下架）
     */
    @Schema(description = "状态（0上架 1下架）")
    private String status;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private String createBy;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 更新人
     */
    @Schema(description = "更新人")
    private String updateBy;

    /**
     * 删除标志（0存在 2删除）
     */
    @TableLogic
    @Schema(description = "删除标志（0存在 2删除）")
    private String delFlag;

    /**
     * 一级分类名称
     */
    @Schema(description = "一级分类名称")
    @TableField(exist = false)
    private String category1Name;
    /**
     * 二级分类名称
     */
    @Schema(description = "二级分类名称")
    @TableField(exist = false)
    private String category2Name;

    /**
     * 商品sku列表
     */
    @Schema(description = "商品sku列表")
    @TableField(exist = false)
    private List<ProductSku> productSkuList;

}